public class Test2 {
    public static void main(String[] args) {
        Dog dog1 = new Dog("旺财",3);

        System.out.println(dog1.getName());
        dog1.setName("小米");
        System.out.println(dog1.getName());

        System.out.println(dog1);//Dog{name='小米', age=3}
    }
}

class Dog {
    private String name;
    private int age;
    // private + 成员属性： 表示只能让它修饰的成员属性在类中被使用，不能在别的类中使用

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
        this.wolf();
    }
    //构造函数也可以快速创建，但是不能快速创建无参数的构造函数

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public void wolf(){
        System.out.println(name + "汪汪叫~");
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name){
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    //setter and getter 得到成员属性方法 and 设置成员属性方法
    //可以在此类外部 得到 and 改动 成员属性
    //可快速创建

    //default : 默认权限 / 包访问权限
}
